mysql字符串拆分实现split功能 您所在的位置:网站首页 sql 按逗号截取字符串 mysql字符串拆分实现split功能

mysql字符串拆分实现split功能

2024-07-16 04:00| 来源: 网络整理| 查看: 265

转自:https://blog.csdn.net/pjymyself/article/details/81668157有分隔符的字符串拆分

【0】需求 【0.1】需求描述

数据库中 num字段值为:

  

实现的效果:需要将一行数据变成多行

【0.2】实现的SQL SELECT -- 因为表连接,所以有几个逗号就会出现几行相同的行,只是help_topic_id不一样;-- 当help_topic_id=0 时,获取第1个逗号左边的值;为1时获取第2个逗号与第1个逗号之间的值,为2时获取第3个逗号与第2个逗号之间的值,以此类推 SUBSTRING_INDEX(SUBSTRING_INDEX('7654,7698,7782,7788',',',help_topic_id+1),',',-1) AS num FROM mysql.help_topic WHERE help_topic_id 0

就可以判断出;id列,是否在 ids列中出现过;做表连接的时候,也可以这样;

 

【5.2】instr

  

 

我们可以看出,instr是找出 参数2=》也就是上图中的 '123'     在参数1=》也就是上图中的 '321,123,555,12345' 中最开始出现的位置;

所以我们也只需要 where find_in_set(ids,id)>0 ,就可以判断出 id 在 ids中出现过;

 

但这有一个问题,如果逗号分隔开的字符串,包含我们查找的字符串,也会显示出来,这就不符合我们 根据分隔符 , 判断 查找字符串id 是否出现在 ids 中;

如下:

  

 

我们本来想查以逗号为分隔的完全匹配,但是12345包含了 123 所以查出来的结果也是>0的,这不对;

所以我们为了避免这种情况,可以加上分隔符;然后再用 字符串+分隔符作为 查找的字符串 来 匹配;

  

 

   

我们被查找的字符串 ids 中 再加上一个正常的 123, 再查看,如下图:确实是对的

  

转自:https://blog.csdn.net/pjymyself/article/details/81668157 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有